import java.io.Serializable;
import java.util.Collection;
import java.util.HashMap;
import java.util.Observable;
import java.util.HashSet;
import java.util.TreeMap;

public class Document extends Observable implements Serializable {

	// ************************************************************************************************************
	// Constantes
	// ************************************************************************************************************

	private static final long serialVersionUID = 1L;
	
	// ************************************************************************************************************
	// Attributs
	// ************************************************************************************************************

	private String _titre;
	private HashSet<String> motscles;
	
	// Attributs d'Association
	private TreeMap<String, Auteur> auteurs;
	
	// ************************************************************************************************************
	// Constructeur
	// ************************************************************************************************************

	/**
	 * Constructeur. 
	 * @param titre			titre du document
	 */
	public Document(String titre, TreeMap<String, Auteur> auteurs2, HashSet<String> mc) {
		
		this.setTitre(titre);
		this.setAuteurs(auteurs2);		
		this.setMotsCles(mc);
		
	} // Fin Constructeur

	// ************************************************************************************************************
	// M�thodes priv�es
	// ************************************************************************************************************
	
	// ------------------------------------------------------------------------------------------------------------
	// Affecteurs
	
	/**
	 * setter de l'attribut titre.
	 * @param titre valeur � affecter au titre de l'ouvrage
	 */
	private void setTitre(String titre){
		_titre = titre;
	}
	
	/**
	 * @param auteurs2 collection à affecter à l'ensemble auteurs
	 */
	private void setAuteurs(TreeMap<String, Auteur> auteurs2) {
		
		auteurs = auteurs2;
	}
	
	/**
	 * @param mc collection à affecter à l'ensemble motscles
	 */
	private void setMotsCles(HashSet<String> mc) {
		motscles = mc;
	}

	// ------------------------------------------------------------------------------------------------------------
	// Traitements

	// ************************************************************************************************************
	// M�thodes publiques
	// ************************************************************************************************************

	// ------------------------------------------------------------------------------------------------------------
	// Accesseurs
	
	/**
	 * Getter du titre.
	 * @return titre du document
	 */
	public String getTitre() {
		return _titre;
	}
	
	/**
	 * @return auteurs l'ensemble auteurs
	 */
	public TreeMap<String, Auteur> getAuteurs() {
		return auteurs;
	}
	
	/**
	 * @return motscles l'ensemble motscles
	 */
	public HashSet<String> getMotsCles() {
		return motscles;
	}
	
	

} // Fin Classe Document